package com.jt.util;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class ObjectMapperUtil {
    private static final ObjectMapper MAPPER = new ObjectMapper();

    /**
     * 将对象转换为Json字符串
     * @param target 需要转换的对象
     * @return Json字符串
     */
    public static String toJson(Object target){
        try {
            return MAPPER.writeValueAsString(target);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            //将检查异常转化为运行时异常
            throw new RuntimeException(e);
        }
    }


    /**
     * 将Json转化为对象
     * @param json 要转换的json字符串
     * @param targetClass 转换结果的字节码对象
     * @param <T> 对象的泛型
     * @return 对象
     */
    //<T>是定义泛型---T是使用泛型
    public static <T> T toObject(String json,Class<T> targetClass){
        try {
            return MAPPER.readValue(json, targetClass);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }

}
